﻿// 功能：Shell通知消息API
// 描述：
// 作者：温伟鹏
// 日期：2010/9/2 10:12:15

using System;
using System.Runtime.InteropServices;
using MeizuSDK.Drawing;

namespace MeizuSDK.Core
{
    /// <summary>
    /// Shell通知消息API
    /// </summary>
    public sealed class ShellNotifyMsg
    {
        #region DllImport
        /// <summary>
        /// 关闭转屏功能，ChangeDisplaySettingsEx会返回失败。
        /// </summary>
        /// <returns></returns>
        [DllImport("PlatformAPIWrapper.dll", SetLastError = true, EntryPoint = "ShellNotifyMsgDisableChangeDisplaySetting")]
        public static extern bool DisableChangeDisplaySetting();

        /// <summary>
        /// 开启转屏功能。
        /// </summary>
        /// <returns></returns>
        [DllImport("PlatformAPIWrapper.dll", SetLastError = true, EntryPoint = "ShellNotifyMsgEnableChangeDisplaySetting")]
        public static extern bool EnableChangeDisplaySetting();

        /// <summary>
        /// 获取所有的硬按键消息 
        /// </summary>
        /// <returns></returns>
        [DllImport("PlatformAPIWrapper.dll", SetLastError = true, EntryPoint = "ShellNotifyMsgGetShellNotifyMsg_AllKeyEvent")]
        public static extern uint GetShellNotifyMsg_AllKeyEvent();

        /// <summary>
        /// 获取电池电量低的消息
        /// </summary>
        /// <returns></returns>
        [DllImport("PlatformAPIWrapper.dll", SetLastError = true, EntryPoint = "ShellNotifyMsgGetShellNotifyMsg_BatteryLow")]
        public static extern uint GetShellNotifyMsg_BatteryLow();

        /// <summary>
        /// 获取点击"Home"键消息 
        /// </summary>
        /// <returns></returns>
        [DllImport("PlatformAPIWrapper.dll", SetLastError = true, EntryPoint = "ShellNotifyMsgGetShellNotifyMsg_ClickMKey")]
        public static extern uint GetShellNotifyMsg_ClickMKey();
        /// <summary>
        /// 获取点击任务栏消息 
        /// </summary>
        /// <returns></returns>
        [DllImport("PlatformAPIWrapper.dll", SetLastError = true, EntryPoint = "ShellNotifyMsgGetShellNotifyMsg_ClickTaskbar")]
        public static extern uint GetShellNotifyMsg_ClickTaskbar();

        /// <summary>
        /// 获取进入锁机前消息 
        /// </summary>
        /// <returns></returns>
        [DllImport("PlatformAPIWrapper.dll", SetLastError = true, EntryPoint = "ShellNotifyMsgGetShellNotifyMsg_EntryLockPhone")]
        public static extern uint GetShellNotifyMsg_EntryLockPhone();

        /// <summary>
        /// 获取开启Music界面的消息（相当于非锁机状态下，按PLAY键） 
        /// </summary>
        /// <returns></returns>
        [DllImport("PlatformAPIWrapper.dll", SetLastError = true, EntryPoint = "ShellNotifyMsgGetShellNotifyMsg_EntryMusic")]
        public static extern uint GetShellNotifyMsg_EntryMusic();

        /// <summary>
        /// 获取进入关机界面前的消息
        /// </summary>
        /// <returns></returns>
        [DllImport("PlatformAPIWrapper.dll", SetLastError = true, EntryPoint = "ShellNotifyMsgGetShellNotifyMsg_EntryShutDown")]
        public static extern uint GetShellNotifyMsg_EntryShutDown();

        /// <summary>
        /// 获取离开锁机前的消息 
        /// </summary>
        /// <returns></returns>
        [DllImport("PlatformAPIWrapper.dll", SetLastError = true, EntryPoint = "ShellNotifyMsgGetShellNotifyMsg_LeaveLockPhone")]
        public static extern uint GetShellNotifyMsg_LeaveLockPhone();

        /// <summary>
        /// 获取离开关机界面的消息 
        /// </summary>
        /// <returns></returns>
        [DllImport("PlatformAPIWrapper.dll", SetLastError = true, EntryPoint = "ShellNotifyMsgGetShellNotifyMsg_LeaveShutDown")]
        public static extern uint GetShellNotifyMsg_LeaveShutDown();

        /// <summary>
        /// 获取网络（GPRS,WIFI）连接的消息 
        /// </summary>
        /// <returns></returns>
        [DllImport("PlatformAPIWrapper.dll", SetLastError = true, EntryPoint = "ShellNotifyMsgGetShellNotifyMsg_NetConnect")]
        public static extern uint GetShellNotifyMsg_NetConnect();

        /// <summary>
        /// 获取网络（GPRS,WIFI）断开的消息 
        /// </summary>
        /// <returns></returns>
        [DllImport("PlatformAPIWrapper.dll", SetLastError = true, EntryPoint = "ShellNotifyMsgGetShellNotifyMsg_NetDisconnect")]
        public static extern uint GetShellNotifyMsg_NetDisconnect();

        /// <summary>
        /// 获取准备关机的消息
        /// </summary>
        /// <returns></returns>
        [DllImport("PlatformAPIWrapper.dll", SetLastError = true, EntryPoint = "ShellNotifyMsgGetShellNotifyMsg_ReadyPowerOFF")]
        public static extern uint GetShellNotifyMsg_ReadyPowerOFF();

        /// <summary>
        /// 获取准备显示通知消息窗口，如短信，闹钟等的消息
        /// </summary>
        /// <returns></returns>
        [DllImport("PlatformAPIWrapper.dll", SetLastError = true, EntryPoint = "ShellNotifyMsgGetShellNotifyMsg_ShowNotifyWnd")]
        public static extern uint GetShellNotifyMsg_ShowNotifyWnd();

        /// <summary>
        /// 获取同步开始的消息
        /// </summary>
        /// <returns></returns>
        [DllImport("PlatformAPIWrapper.dll", SetLastError = true, EntryPoint = "ShellNotifyMsgGetShellNotifyMsg_SyncBeginEvent")]
        public static extern uint GetShellNotifyMsg_SyncBeginEvent();

        /// <summary>
        /// 获取同步完成的消息
        /// </summary>
        /// <returns></returns>
        [DllImport("PlatformAPIWrapper.dll", SetLastError = true, EntryPoint = "ShellNotifyMsgGetShellMsg_SyncEndEvent")]
        public static extern uint GetShellMsg_SyncEndEvent();

        /// <summary>
        /// 隐藏顶部的任务栏
        /// </summary>
        /// <returns></returns>
        [DllImport("PlatformAPIWrapper.dll", SetLastError = true, EntryPoint = "ShellNotifyMsgHideMzTopBar")]
        public static extern bool HideMzTopBar();

        /// <summary>
        /// 阻止Shell弹出电量低的对话框
        /// </summary>
        /// <param name="hWnd">调用该函数的窗口句柄 </param>
        /// <returns></returns>
        [DllImport("PlatformAPIWrapper.dll", SetLastError = true, EntryPoint = "ShellNotifyMsgHoldShellBatteryLowWarningBox")]
        public static extern bool HoldShellBatteryLowWarningBox(IntPtr hWnd);

        /// <summary>
        ///   阻止Shell使用某些按键功能, 此功能注册后，会自动注册了WM_MZSH_ALL_KEY_EVENT 收到按键的消息定义和WM_MZSH_ALL_KEY_EVENT是一样的
        /// </summary>
        /// <param name="hWnd">调用该函数的窗口句柄 </param>
        /// <param name="uKeys">各键的组合，可以用|组合。 M8HardKeys </param>
        /// <returns></returns>
        [DllImport("PlatformAPIWrapper.dll", SetLastError = true, EntryPoint = "ShellNotifyMsgHoldShellUsingSomeKeyFunction")]
        public static extern bool HoldShellUsingSomeKeyFunction(IntPtr hWnd, uint uKeys);

        /// <summary>
        /// 静态地判断当前是否是锁机状态 
        /// </summary>
        /// <returns></returns>
        [DllImport("PlatformAPIWrapper.dll", SetLastError = true, EntryPoint = "ShellNotifyMsgIsLockPhoneStatus")]
        public static extern bool IsLockPhoneStatus();

        /// <summary>
        /// 清除通知消息 
        /// </summary>
        /// <returns></returns>
        [DllImport("PlatformAPIWrapper.dll", SetLastError = true, EntryPoint = "ShellNotifyMsgMzClearUserNotification")]
        public static extern bool MzClearUserNotification(IntPtr hNotification);

        /// <summary>
        /// 禁止从左上角关闭程序
        /// </summary>
        /// <returns></returns>
        [DllImport("PlatformAPIWrapper.dll", SetLastError = true, EntryPoint = "ShellNotifyMsgMzDisableSlideApp")]
        public static extern bool MzDisableSlideApp();

        /// <summary>
        /// 禁止使用任务栏列表。禁止从任务栏上拖出任务栏列表
        /// </summary>
        /// <returns></returns>
        [DllImport("PlatformAPIWrapper.dll", SetLastError = true, EntryPoint = "ShellNotifyMsgMzDisableTaskbarList")]
        public static extern bool MzDisableTaskbarList();

        /// <summary>
        /// 能够从左上角关闭程序，默认状态 
        /// </summary>
        /// <returns></returns>
        [DllImport("PlatformAPIWrapper.dll", SetLastError = true, EntryPoint = "ShellNotifyMsgMzEnableSlideApp")]
        public static extern bool MzEnableSlideApp();

        /// <summary>
        /// 能够使用任务栏列表。能够从任务栏上拖出任务栏列表，默认状态
        /// </summary>
        /// <returns></returns>
        [DllImport("PlatformAPIWrapper.dll", SetLastError = true, EntryPoint = "ShellNotifyMsgMzEnableTaskbarList")]
        public static extern bool MzEnableTaskbarList();

        /// <summary>
        /// 通知Shell进入锁机界面 
        /// </summary>
        /// <returns></returns>
        [DllImport("PlatformAPIWrapper.dll", SetLastError = true, EntryPoint = "ShellNotifyMsgMzEntryLockPhone")]
        public static extern bool MzEntryLockPhone();

        /// <summary>
        /// 通知Shell离开锁机界面
        /// </summary>
        /// <returns></returns>
        [DllImport("PlatformAPIWrapper.dll", SetLastError = true, EntryPoint = "ShellNotifyMsgMzLeaveLockPhone")]
        public static extern bool MzLeaveLockPhone();

        /// <summary>
        /// 通知Shell,本应用开始启动初始化
        /// </summary>
        /// <returns></returns>
        [DllImport("PlatformAPIWrapper.dll", SetLastError = true, EntryPoint = "ShellNotifyMsgMzNotifyAppInitBegin")]
        public static extern bool MzNotifyAppInitBegin();

        /// <summary>
        /// 通知Shell,本应用的启动初始化完成
        /// </summary>
        /// <returns></returns>
        [DllImport("PlatformAPIWrapper.dll", SetLastError = true, EntryPoint = "ShellNotifyMsgMzNotifyAppInitFinished")]
        public static extern bool MzNotifyAppInitFinished();

        /// <summary>
        /// 通知Shell关闭系统 
        /// </summary>
        /// <returns></returns>
        [DllImport("PlatformAPIWrapper.dll", SetLastError = true, EntryPoint = "ShellNotifyMsgMzPowerOffSystem")]
        public static extern bool MzPowerOffSystem();

        /// <summary>
        /// 通知Shell重启系统 
        /// </summary>
        /// <returns></returns>
        [DllImport("PlatformAPIWrapper.dll", SetLastError = true, EntryPoint = "ShellNotifyMsgMzResetSystem")]
        public static extern bool MzResetSystem();

        /// <summary>
        /// 通知消息，出现在任务列表上的消息
        /// </summary>
        /// <param name="hNotification"></param>
        /// <param name="pMun"></param>
        /// <returns></returns>
        [DllImport("PlatformAPIWrapper.dll", SetLastError = true, EntryPoint = "ShellNotifyMsgMzSetUserNotification")]
        public static extern IntPtr MzSetUserNotification(IntPtr hNotification, ref MzUserNotification pMun);

        /// <summary>
        /// 通知Shell用户昵称改变
        /// </summary>
        /// <returns></returns>
        [DllImport("PlatformAPIWrapper.dll", SetLastError = true, EntryPoint = "ShellNotifyMsgNotifyShellUserNameChanged")]
        public static extern bool NotifyShellUserNameChanged();

        /// <summary>
        /// 更新桌面背景图、待机背景图 
        /// </summary>
        /// <param name="nPaper">背景图 M8WallPaperType</param>
        /// <returns></returns>
        [DllImport("PlatformAPIWrapper.dll", SetLastError = true, EntryPoint = "ShellNotifyMsgRefreshWallpaper")]
        public static extern bool RefreshWallpaper(int nPaper);

        /// <summary>
        /// 注册Shell的通知消息 
        /// </summary>
        /// <param name="hWnd">注册的窗口句柄</param>
        /// <param name="uMsg">注册的消息，可组合使用。M8ShellNotifyMsgType</param>
        /// <returns></returns>
        [DllImport("PlatformAPIWrapper.dll", SetLastError = true, EntryPoint = "ShellNotifyMsgRegisterShellMessage")]
        public static extern bool RegisterShellMessage(IntPtr hWnd, uint uMsg);

        /// <summary>
        /// 通知Shell重新刷新桌面上的图标，用于安装程序后图标更新 
        /// </summary>
        /// <returns></returns>
        [DllImport("PlatformAPIWrapper.dll", SetLastError = true, EntryPoint = "ShellNotifyMsgReloadDesktopIcons")]
        public static extern bool ReloadDesktopIcons();

        /// <summary>
        /// 指定桌面图标显示一段文字， 注意，该项设置有效的前提条件是注册表项的AnimateIcon必须设置为1 
        /// </summary>
        /// <param name="strPID">应用程序对应用PID，注册表中的ProgamID项（唯一标识某个应用程序或图标），使用创建GUID的工具获取全球唯一字串。</param>
        /// <param name="strTips">显示的字符，字符的大小根据给定的RECT和字符长度自动调节,最大支持16个字符长度</param>
        /// <param name="rcPos">提示放在图标上相对的位置, 目前图标大小为96*96, RECT 应当小于这个值</param>
        /// <returns></returns>
        [DllImport("PlatformAPIWrapper.dll", SetLastError = true, EntryPoint = "ShellNotifyMsgSetAnimateDesktopIconTip")]
        public static extern bool SetAnimateDesktopIconTip(string strPID, string strTips, RECT rcPos);

        /// <summary>
        /// 指定桌面图标显示提示数字（像未读短信图标上的提示）, 注意，该项设置有效的前提条件是注册表项的AnimateIcon必须设置为1
        /// </summary>
        /// <param name="strPID">应用程序对应用PID，注册表中的ProgamID项（唯一标识某个应用程序或图标），使用创建GUID的工具获取全球唯一字串。</param>
        /// <param name="nNumber">提示的数字（0~99）,0不会显示，超过99,只显示99 </param>
        /// <param name="tipsNPos">提示放在图标上相对的位置，见TIPS_NUMBER_POS </param>
        /// <returns></returns>
        [DllImport("PlatformAPIWrapper.dll", SetLastError = true, EntryPoint = "ShellNotifyMsgSetAnimateDesktopIcon2")]
        public static extern bool SetAnimateDesktopIcon(string strPID, int nNumber, TipsNumberPos tipsNPos);

        /// <summary>
        /// 使屏幕常亮(不自动黑屏进锁机状态)，使用完之后，一定要调用SetScreenAutoOff(); 该函数不能嵌套调用
        /// </summary>
        /// <param name="hWnd">调用该函数的窗口句柄  </param>
        /// <returns></returns>
        [DllImport("PlatformAPIWrapper.dll", SetLastError = true, EntryPoint = "ShellNotifyMsgSetScreenAlwaysOn")]
        public static extern bool SetScreenAlwaysOn(IntPtr hWnd);

        /// <summary>
        /// 使屏幕自动变暗，解除屏幕常亮状态 
        /// </summary>
        /// <returns></returns>
        [DllImport("PlatformAPIWrapper.dll", SetLastError = true, EntryPoint = "ShellNotifyMsgSetScreenAlwaysOff")]
        public static extern bool SetScreenAutoOff();

        /// <summary>
        /// 显示退出程序动画（非MZFC程序适用），PostQuitMessage(0)之前调用
        /// </summary>
        /// <returns></returns>
        [DllImport("PlatformAPIWrapper.dll", SetLastError = true, EntryPoint = "ShellNotifyMsgShowAppQuitAnimate")]
        public static extern bool ShowAppQuitAnimate();

        /// <summary>
        /// 显示顶部的任务栏 
        /// </summary>
        /// <returns></returns>
        [DllImport("PlatformAPIWrapper.dll", SetLastError = true, EntryPoint = "ShellNotifyMsgShowMzTopBar")]
        public static extern bool ShowMzTopBar();

        /// <summary>
        /// 显示音量界面
        /// </summary>
        /// <param name="nType"> 音量的类型，目前支持三种，喇叭，耳塞，听筒</param>
        /// <param name="nVolClass">需要显示的等级，目前显示范围为0~15级</param>
        /// <returns></returns>
        [DllImport("PlatformAPIWrapper.dll", SetLastError = true, EntryPoint = "ShellNotifyMsgShowVolumeWnd")]
        public static extern bool ShowVolumeWnd(VolumeType nType, int nVolClass);

        /// <summary>
        /// 解除阻止Shell弹出电量低的对话框
        /// </summary>
        /// <param name="hWnd">调用该函数的窗口句柄</param>
        /// <returns></returns>
        [DllImport("PlatformAPIWrapper.dll", SetLastError = true, EntryPoint = "ShellNotifyMsgUnHoldShellBatteryLowWarningBox")]
        public static extern bool UnHoldShellBatteryLowWarningBox(IntPtr hWnd);

        /// <summary>
        /// 解除阻止Shell使用某些按键功能
        /// </summary>
        /// <param name="hWnd">调用该函数的窗口句柄</param>
        /// <param name="uKeys">各键的组合。可组合使用</param>
        /// <returns></returns>
        [DllImport("PlatformAPIWrapper.dll", SetLastError = true, EntryPoint = "ShellNotifyMsgUnHoldShellUsingSomeKeyFunction")]
        public static extern bool UnHoldShellUsingSomeKeyFunction(IntPtr hWnd, uint uKeys);

        /// <summary>
        ///  取消注册Shell的通知消息
        /// </summary>
        /// <param name="hWnd">注册的窗口句柄</param>
        /// <param name="uMsg">注册的消息.可组合使用</param>
        /// <returns></returns>
        [DllImport("PlatformAPIWrapper.dll", SetLastError = true, EntryPoint = "ShellNotifyMsgUnRegisterShellMessage")]
        public static extern bool UnRegisterShellMessage(IntPtr hWnd, uint uMsg);
        #endregion

        #region 消息定义
        /// <summary>
        /// 自定义按键按下后回调应用 
        /// </summary>
        public const uint MUN_CUSTOM_CB = 0x00000080;
        /// <summary>
        /// 默认按键按下后回调应用 
        /// </summary>
        public const uint MUN_DEFAULT_CB = 0x00000040;
        /// <summary>
        /// 显示对话框 
        /// </summary>
        public const uint MUN_DIALOG = 0x00000020;
        /// <summary>
        /// 按键上显示取消图标
        /// </summary>
        public const uint MUN_ICON_TYPE_CANCEL = 2;
        /// <summary>
        /// 按键上显示隐藏图标
        /// </summary>
        public const uint MUN_ICON_TYPE_HIDE = 4;
        /// <summary>
        ///  按键上显示确定图标 
        /// </summary>
        public const uint MUN_ICON_TYPE_OK = 1;
        /// <summary>
        /// 按键上显示打开图标
        /// </summary>
        public const uint MUN_ICON_TYPE_OPEN = 3;
        /// <summary>
        /// 任务列表上的图
        /// </summary>
        public const uint MUN_IMAGE_L = 0x00000010;
        /// <summary>
        /// 任务栏上的图 
        /// </summary>
        public const uint MUN_IMAGE_S = 0x00000008;
        /// <summary>
        /// LED 灯闪烁. 
        /// </summary>
        public const uint MUN_LED = 0x00000001;
        /// <summary>
        /// 播放声音 
        /// </summary>
        public const uint MUN_SOUND = 0x00000002;
        /// <summary>
        /// 渐强音标志 
        /// </summary>
        public const uint MUN_SOUND_FADEIN = 0x00000200;
        /// <summary>
        /// 最大声音长度标志，只播放一次，如果长度超过dwPlaySoundPeriod设置值，则播放到设置值。 
        /// </summary>
        public const uint MUN_SOUND_MAX = 0x00000100;
        /// <summary>
        /// 紧急事件（优先处理） 
        /// </summary>
        public const uint MUN_URGENT = 0x10000000;
        /// <summary>
        /// 震动消息
        /// </summary>
        public const uint MUN_VIBRATE = 0x00000004;

        /*
         M8硬按键定义. 
         */
        /// <summary>
        /// 删除
        /// </summary>
        public const uint MUNH_DELETE = 3;
        /// <summary>
        /// 设置
        /// </summary>
        public const uint MUNH_SET = 1;
        /// <summary>
        /// 更新
        /// </summary>
        public const uint MUNH_UPDATE = 2;
        /// <summary>
        /// M键消息
        /// </summary>
        public const uint MZ_HARDKEY_HOME = (0x00000001);
        /// <summary>
        /// 
        /// </summary>
        public const uint MZ_HARDKEY_LINE = (0x00000020);
        /// <summary>
        /// 播放键消息
        /// </summary>
        public const uint MZ_HARDKEY_PLAY = (0x00000004);
        /// <summary>
        /// 电源键消息
        /// </summary>
        public const uint MZ_HARDKEY_POWER = (0x00000002);
        /// <summary>
        /// 下音量键消息
        /// </summary>
        public const uint MZ_HARDKEY_VOLUME_DOWN = (0x00000010);
        /// <summary>
        /// 上音量键消息
        /// </summary>
        public const uint MZ_HARDKEY_VOLUME_UP = (0x00000008);


        /// <summary>
        /// 更换所有墙纸
        /// </summary>
        public const uint WALLPAPER_ALL = 0x0003;
        /// <summary>
        /// 更新桌面及待机界面的背景图
        /// </summary>
        public const uint WALLPAPER_DESKTOP = 0x0001;
        /// <summary>
        /// 更换待机墙纸
        /// </summary>
        public const uint WALLPAPER_STANDBY = 0x0002;
        /// <summary>
        /// 所有硬按键消息
        /// </summary>
        public const uint WM_MZSH_ALL_KEY_EVENT = 0x00000200;
        /// <summary>
        /// 电池电量低 
        /// </summary>
        public const uint WM_MZSH_BATTERY_LOW = 0x00000080;
        /// <summary>
        /// 同步开始 
        /// </summary>
        public const uint WM_MZSH_BEGIN_SYNC_EVENT = 0x00000400;
        /// <summary>
        /// 注册Shell相关的通知消息。可同时注册/取消多个，以'|'组合 
        /// </summary>
        public const uint WM_MZSH_CLICK_M_KEY = 0x00000001;
        /// <summary>
        /// 点击任务栏 
        /// </summary>
        public const uint WM_MZSH_CLICK_TASKBAR = 0x00000002;
        /// <summary>
        /// 同步结束 
        /// </summary>
        public const uint WM_MZSH_END_SYNC_EVENT = 0x00000800;
        /// <summary>
        /// 进入锁机界面 
        /// </summary>
        public const uint WM_MZSH_ENTRY_LOCKPHONE = 0x00000004;
        /// <summary>
        /// 开启音乐界面 
        /// </summary>
        public const uint WM_MZSH_ENTRY_MUSIC = 0x00000100;
        /// <summary>
        /// 进入关机界面 
        /// </summary>
        public const uint WM_MZSH_ENTRY_SHUTDOWN = 0x00000010;
        /// <summary>
        /// 离开锁机界面 
        /// </summary>
        public const uint WM_MZSH_LEAVE_LOCKPHONE = 0x00000008;
        /// <summary>
        /// 离开关机界面 
        /// </summary>
        public const uint WM_MZSH_LEAVE_SHUTDOWN = 0x00000020;
        /// <summary>
        /// 网络连接（GPRS 和 WIFI） 
        /// </summary>
        public const uint WM_MZSH_NET_CONNECT = 0x00001000;
        /// <summary>
        /// 网络断开（GPRS 和 WIFI） 
        /// </summary>
        public const uint WM_MZSH_NET_DISCONNECT = 0x00002000;
        /// <summary>
        /// 准备关机 
        /// </summary>
        public const uint WM_MZSH_READY_POWEROFF = 0x00000040;
        /// <summary>
        /// 准备显示通知消息窗口，如短信，闹钟等 
        /// </summary>
        public const uint WM_MZSH_SHOW_NOTIFY_WND = 0x00004000;
        #endregion
    }
}
